home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / linux / icmp.h < prev    next >
C/C++ Source or Header  |  2005-10-13  |  3KB  |  97 lines

  1. /*
  2.  * INET        An implementation of the TCP/IP protocol suite for the LINUX
  3.  *        operating system.  INET is implemented using the  BSD Socket
  4.  *        interface as the means of communication with the user level.
  5.  *
  6.  *        Definitions for the ICMP protocol.
  7.  *
  8.  * Version:    @(#)icmp.h    1.0.3    04/28/93
  9.  *
  10.  * Author:    Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
  11.  *
  12.  *        This program is free software; you can redistribute it and/or
  13.  *        modify it under the terms of the GNU General Public License
  14.  *        as published by the Free Software Foundation; either version
  15.  *        2 of the License, or (at your option) any later version.
  16.  */
  17. #ifndef _LINUX_ICMP_H
  18. #define    _LINUX_ICMP_H
  19.  
  20. #include <linux/types.h>
  21.  
  22. #define ICMP_ECHOREPLY        0    /* Echo Reply            */
  23. #define ICMP_DEST_UNREACH    3    /* Destination Unreachable    */
  24. #define ICMP_SOURCE_QUENCH    4    /* Source Quench        */
  25. #define ICMP_REDIRECT        5    /* Redirect (change route)    */
  26. #define ICMP_ECHO        8    /* Echo Request            */
  27. #define ICMP_TIME_EXCEEDED    11    /* Time Exceeded        */
  28. #define ICMP_PARAMETERPROB    12    /* Parameter Problem        */
  29. #define ICMP_TIMESTAMP        13    /* Timestamp Request        */
  30. #define ICMP_TIMESTAMPREPLY    14    /* Timestamp Reply        */
  31. #define ICMP_INFO_REQUEST    15    /* Information Request        */
  32. #define ICMP_INFO_REPLY        16    /* Information Reply        */
  33. #define ICMP_ADDRESS        17    /* Address Mask Request        */
  34. #define ICMP_ADDRESSREPLY    18    /* Address Mask Reply        */
  35. #define NR_ICMP_TYPES        18
  36.  
  37.  
  38. /* Codes for UNREACH. */
  39. #define ICMP_NET_UNREACH    0    /* Network Unreachable        */
  40. #define ICMP_HOST_UNREACH    1    /* Host Unreachable        */
  41. #define ICMP_PROT_UNREACH    2    /* Protocol Unreachable        */
  42. #define ICMP_PORT_UNREACH    3    /* Port Unreachable        */
  43. #define ICMP_FRAG_NEEDED    4    /* Fragmentation Needed/DF set    */
  44. #define ICMP_SR_FAILED        5    /* Source Route failed        */
  45. #define ICMP_NET_UNKNOWN    6
  46. #define ICMP_HOST_UNKNOWN    7
  47. #define ICMP_HOST_ISOLATED    8
  48. #define ICMP_NET_ANO        9
  49. #define ICMP_HOST_ANO        10
  50. #define ICMP_NET_UNR_TOS    11
  51. #define ICMP_HOST_UNR_TOS    12
  52. #define ICMP_PKT_FILTERED    13    /* Packet filtered */
  53. #define ICMP_PREC_VIOLATION    14    /* Precedence violation */
  54. #define ICMP_PREC_CUTOFF    15    /* Precedence cut off */
  55. #define NR_ICMP_UNREACH        15    /* instead of hardcoding immediate value */
  56.  
  57. /* Codes for REDIRECT. */
  58. #define ICMP_REDIR_NET        0    /* Redirect Net            */
  59. #define ICMP_REDIR_HOST        1    /* Redirect Host        */
  60. #define ICMP_REDIR_NETTOS    2    /* Redirect Net for TOS        */
  61. #define ICMP_REDIR_HOSTTOS    3    /* Redirect Host for TOS    */
  62.  
  63. /* Codes for TIME_EXCEEDED. */
  64. #define ICMP_EXC_TTL        0    /* TTL count exceeded        */
  65. #define ICMP_EXC_FRAGTIME    1    /* Fragment Reass time exceeded    */
  66.  
  67.  
  68. struct icmphdr {
  69.   __u8        type;
  70.   __u8        code;
  71.   __u16        checksum;
  72.   union {
  73.     struct {
  74.         __u16    id;
  75.         __u16    sequence;
  76.     } echo;
  77.     __u32    gateway;
  78.     struct {
  79.         __u16    __unused;
  80.         __u16    mtu;
  81.     } frag;
  82.   } un;
  83. };
  84.  
  85. /*
  86.  *    constants for (set|get)sockopt
  87.  */
  88.  
  89. #define ICMP_FILTER            1
  90.  
  91. struct icmp_filter {
  92.     __u32        data;
  93. };
  94.  
  95.  
  96. #endif    /* _LINUX_ICMP_H */
  97.